Webhook으로 GitHub Actions 발동시키기
Webhook을 통해 GitHub Actions를 발동시키는 방법을 알아보자.
또 이를 이용해 블로그 글이 저장된 저장소에서 Push가 발생하면 블로그 저장소의 빌드 및 배포 Actions를 발동시키는 방법도 알아보자.
목차
repository_dispatch
트리거
repository_dispatch
트리거 설정
repository_dispatch
트리거는 저장소의 dispath 이벤트로 발동되는 트리거이다.
이 트리거를 설정하면 Webhook으로 GitHub Actions를 실행시킬 수 있다.
이 때 이벤트 타입 이름은 이 해당 Webhook 이벤트를 잘 구분할 수 있도록 설정하면 된다.
dispath 이벤트 발동시키기
이제 저장소에 dispatch 이벤트를 발동시키면 위에서 설정한 Actions가 실행된다.
이를 발동시키려면 POST /repos/< 저장소 소유자 >/< 저장소 이름 >/dispatches
API를 사용하면 된다.
curl
명령어로는 다음과 같이 사용할 수 있다.
event_type
에는 위에서 설정한 이벤트 타입 값 중 하나를 넣어주면 된다.
GitHub PAT 에는 해당 저장소에 contents:write
권한이 있어야 한다.
PAT 를 생성할 때 권한을 잘 설정해주자.
해당 명령어를 실행하면 저장소에 dispatch 이벤트가 발동되어 위에서 설정한 Actions가 실행될 것이다.
블로그 저장소의 빌드 및 배포 Actions 발동시키기
이제 블로그 글이 저장된 저장소의 main 브랜치에서 push가 발생하면 블로그 저장소의 빌드 및 배포 Actions를 발동시키는 방법을 알아보자.
블로그 저장소에는 이미 배포 Actions가 설정되어 있다고 가정하자.
해당 Actions에 repository_dispatch
트리거를 설정하자.
그리고 블로그 글 저장소에 .github/workflows/dispatch.yml
파일을 생성하고 다음과 같이 작성한 뒤 push하자.
여기서 < 저장소 이름 >
에는 블로그 저장소의 이름이 들어가야 한다.
만약 해당 Action 이 실행돼도 블로그 저장소 배포가 되지 않는다면 < 저장소 이름 >
에 글이 저장된 저장소의 이름이 들어간 건 아닌지 확인해보자.
문제가 없다면 해당 workflow 파일이 추가된 push 이후 블로그 글 저장소의 main 브랜치에 push가 발생하면 블로그 저장소의 배포 Actions가 실행될 것이다.